/**
 * Класс, описывающий простой объект с парой ключа и значения
 */
export default class Element {
    /** @type {string} */
    name
    /** @type {*} */
    value

    constructor(name, value) {
        this.name = name
        this.value = value
    }

    /**
     * Создать экземпляр класса из текста с разделителем вида: 'key=value'
     * @param {string} text текст с разделеителем, из которого будет создан экземпляр класса
     * @param {string} delimeter разделитель
     * @returns экземпляр класса Element
     */
    static BuildFromSplitText(text, delimeter) {
        let splitText = text.split(delimeter)
        if (splitText.length === 2) {
            return new Element(splitText[0], splitText[1])
        } else {
            return null
        }
    }

    /**
     * Создать экземпляр класса
     * @param {string} name значение ключа элемента
     * @param {*} value значение элемента
     * @returns экземпляр класса Element
     */
    static BuildFromNameAndValue(name, value) {
        return new Element(name, value)
    }
}